   6 S=0;A=400;B=700;C=0;X=0;Y=0;U=0;V=0;G=5;I=0;H=300;clear ;BC=0;FC=117;J=32;M=44
   9 for W=0to 3;gosub 150+W;next W;gosub 800;gosub 705
  20 for N=1to 4;gosub H+N;@(N)=K;@(N+4)=L;gosub A;next N;box X,Y,4,4,2
  30 for W=1to 5;if ABS(X)<24if ABS(Y)<20goto 38
  34 for N=1to 4;if ABS(X-@(N))<8if ABS(Y-@(N+4))<5if PX(@(N),@(N+4))gosub 780;gosub H+N;@(N)=K;@(N+4)=L;goto 40
  36 next N;goto 39
  38 if ABS(X)<20if ABS(Y)<12goto 120
  39 if (ABS(X)>28)+(ABS(Y)>20)goto 56
  40 for P=-1to 1step 2;if PX(X+3mul P,Y)goto 500
  42 next P;X=X+JX(1)mul R
  44 for P=-1 to 1step 2;if PX(X,Y+3mul P)goto 550
  46 next P;Y=Y+JY(1)mul R;goto 62
  56 if PX(X,Y)=0MU=59;MU=61;C=2;S=S+1;gosub 800;I=I+1;if I=60gosub 110;S=S+8;gosub 800;M=M-1;J=J-1;I=1;for D=1to 3;gosub 150+D;next D
  57 if J=27 J=28;M=40
  58 X=X+JX(1)mul R;Y=Y+JY(1)mul R
  59 if ABS(X)>52 X=-X+(Rmul (ABS(X)div X))
  60 if ABS(Y)>36 Y=-Y+(Rmul (ABS(Y)div Y))
  62 box U,V,4,4,C;box X,Y,4,4,3;C=3;U=X;V=Y;MU=52;E=E-1;if E=16BC=88
  72 if E=0R=2
  75 next W
  80 for N=1to 4;K=@(N);L=@(N+4);box K,L,8,4,2;goto 200+Nmul 2
  90 @(N)=K;@(N+4)=L;next N;goto 30
 110 BC=0;R=4;E=48
 112 NT=9;for Z=1to 2;MU=68;MU=76;MU=68;MU=73;next Z;for Z=1to 2;MU=68;MU=75;MU=68;MU=72;next Z;MU=68;MU=73;NT=3;return 
 120 if PX(X,Y)=0C=2;gosub 110
 125 goto 58
 150 for Z=-1to 1step 2;box 24mul Z,0,4,28,1;box 0,16mul Z,44,4,1;box 24mul Z,0,4,4,2;box 0,16mul Z,4,4,2;next Z;return 
 151 for Z=-1to 1step 2;box 16mul Z,0,2,18,1;box 16mul Z,0,2,14,2;box 12mul Z,0,2,18,1;box 12mul Z,0,2,14,2;next Z;return 
 152 for Z=-52to 52step 104;for T=-28to 28step 4;box Z,T,2,2,1;next T;next Z;return 
 153 for Z=-36to 36step 72;for T=-28to 28step 4;box T,Z,2,2,1;next T;next Z;return 
 202 L=L-1;gosub A;if L=16gosub B;gosub H+N
 203 goto 90
 204 L=L+1;gosub A;if L=-16gosub B;gosub H+N
 205 goto 90
 206 K=K-1;gosub A;if K=26gosub B;gosub H+N
 207 goto 90
 208 K=K+1;gosub A;if K=-26gosub B;gosub H+N
 209 goto 90
 301 K=(rnd (4)-3)mul 11+5;L=J-rnd (3);return 
 302 K=(rnd (4)-3)mul 11+5;L=-J+rnd (3);return 
 303 K=M-rnd (3);L=(rnd (4)-3)mul 8+4;return 
 304 K=-M+rnd (3);L=(rnd (4)-3)mul 8+4;return 
 400 box K,L-1,8,1,1;box K+3,L,1,4,3;box K-4,L,1,4,3;box K,L-1,4,3,3;return 
 500 if JX(1)=-P X=X+JX(1)mul R
 510 goto 44
 550 if JY(1)=-P Y=Y+JY(1)mul R
 560 goto 62
 700 box K,L,8,4,2;for Z=1to 8;FC=8;MU=56;MU=52;FC=117;next Z;gosub 150
 705 G=G-1;CX=-40;CY=40;print #1,G;if G=0gosub 110;for Z=1to B;next Z;CX=-24;CY=0;NT=0;print "GAME 0VER";NT=26;MU=61;NT=0;if KPrun 
 710 return 
 780 box @(N),@(N+4),8,4,2;S=S+2;C=2;gosub 150;for Z=1to 4;MU=64;MU=61;next Z
 800 NT=0;CX=40;CY=40;print #1,S,#1,"00";NT=3;return 
>run 
